%{ 
	#include <stdio.h> 
	#include "y.tab.hpp"
	void yyerror(const char * msg);
	
	int ligne =0;
	int chr = 0;
%}

/* DEFINITIONS REGULIERES */
/* caractères */
endOfLine		\n
lettre 			[a-zA-Z]
chiffre			[0-9]

/* regex */
identifiant		{lettre}+({chiffre}|{lettre}|"_")*
nombre			{chiffre}+{chiffre}*


/* REGLES DE TRADUCTION */
%%


function		{ return FUNCTION; }

loads			{ return LOADS; }

stores			{ return STORES; }

Call			{ return (CALL); }
				
required		{ return (REQUIRED);}
				
entry			{ return (ENTRY); }
				
exit 			{ return (EXIT); }							

{nombre}		{ 
					yylval.stringT = strdup(yytext); 
					return NB;
				}

{identifiant}	{
					yylval.stringT = strdup(yytext);
					return ID;
				}

{endOfLine}		{ 
					//printf("_________end_of_line________\n");						
				}

<<EOF>>			{ 	
					//printf("[LEX] : Analyse lexicale terminée.\n");
					return 0;
				}
				


%%


